package leetcode.cn;

import java.util.*;

/**
 * @version 1.8
 * @Author Djx_hmbb
 * @Date 2023/11/25 23:07
 * @注释:蓝桥杯：数组一次减去一个数（数组中的），最后一个数字，是否与k相同
 */
public class IfFindK {
/*问题描述
小蓝有一个数组a，长度为n，并给定正整数c。
小蓝需要对数组进行n —1次操作，在每一次操作中，小蓝可以选定数组中的任意一个元素，假设值为y，然后让数组中所有的元素都减去y，并将这个元素删除。很显然，n -1次操作后，数组α将仅剩下一个元素。
请问当小蓝操作完成以后，数组最后一个元素的值是否可以为c?
输入格式
第一行包含两个正整数n, c，其含义如上所述。
第二行包含n个正整数a1～an，表示数组中的每一个元素。
输出格式
输出仅包含一行，如果当小蓝操作完成以后，数组最后一个元素的值可以为,，则输出YES，否则输出NO。
*/
    public static boolean ifFindK(int n,int[] nums,int k){
        int left = 0,right = 0;
        List<Integer> list = new LinkedList<>();
        //将数组导入数列--会自动排序
        for(int i:nums){
            list.add(i);
        }
        while(right<n){
            int minus = nums[right];
            //将数列中的每个数字，都减去minus
            for(;left<n;left++){
                if(nums[left] != 0)nums[left]-=minus;
            }
        }

    }

    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int n = s.nextInt();
        int k = s.nextInt();
        int[] nums = new int[n];
        for(int i = 0;i<n;i++){
            nums[i] = s.nextInt();
        }
        boolean b = ifFindK(n,nums, k);
        System.out.println(b);
//        test();
    }

    public static void test() {
        List<Integer> list = new ArrayList<>();
        int[] nums = {5, 14, 3, 32, 100};
        for (int i : nums) {
            list.add(i);
        }
        Collections.sort(list);//升序
        //降序
        Collections.sort(list, new Comparator<Integer>() {
            public int compare(Integer a, Integer b) {
                return b - a;
            }
        });
        for (int i :
                list) {
            System.out.println(i);
        }
        System.out.println("返回Iterator集合对象:" + list.iterator());
        String ne = "";
        ne = list.toString();
        System.out.println(ne);
    }
}
